/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package adsreis.com.Controls;

import adsreis.com.Beans.ClientesBean;
import adsreis.com.acessobd.AcessoMySql;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.swing.JOptionPane;
/**
 *
 * @author Pauroenriki
 */
public class ClientesControl {
    PreparedStatement pstm;
    ResultSet rs;
    String cadastraCliente = "INSERT INTO CLIENTES(NOME, CPF, RG, ENDERECO, BAIRRO, CIDADE, ESTADO, TELEFONE, CELULAR, OPERADORA, EMAIL, CODCLIENTE) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
    String consultaCliente = "SELECT * FROM CLIENTES WHERE CPF LIKE ? OR RG LIKE? OR NOME LIKE?";
    String alteraCliente = "UPDATE CLIENTES SET NOME = ?, CPF =?, RG =?, ENDERECO =?, BAIRRO =?, CIDADE =?, ESTADO =?, TELEFONE =?, CELULAR =?, OPERADORA =?, EMAIL =? WHERE CODCLIENTE =?";
    String excluiCliente = "DELETE FROM CLIENTES WHERE CODCLIENTE = ?";
    String buscaUltimoCodigo = "SELECT MAX(CODCLIENTE) AS CODCLIENTE FROM CLIENTES";
    String consultaclient = "SELECT CODCLIENTE, NOME FROM CLIENTES WHERE NOME =?";
    
    
    public ClientesControl(){
        
    }
    
    
    public void cadastrarCliente(ClientesBean cliente){
       try{
           AcessoMySql mysql = new AcessoMySql();
           pstm = mysql.conectar().prepareStatement(cadastraCliente);
           
           pstm.setString(1,cliente.getNome());
           pstm.setString(2,cliente.getCpf());
           pstm.setString(3,cliente.getRg());
           pstm.setString(4,cliente.getEndereco());
           pstm.setString(5,cliente.getBairro());
           pstm.setString(6,cliente.getCidade());
           pstm.setString(7,cliente.getEstado());
           pstm.setString(8,cliente.getTelefone());
           pstm.setString(9,cliente.getCelular());
           pstm.setString(10,cliente.getOperadora());
           pstm.setString(11,cliente.getEmail());
           pstm.setInt(12, cliente.getCodCliente());
           pstm.executeUpdate();
           mysql.desconectar();
           
       } catch (Exception e){
           e.printStackTrace();
       }
    }
    
    
    public List<ClientesBean> listClient(String nome){
        List<ClientesBean> clientes = new ArrayList();
        try{
            AcessoMySql mysql = new AcessoMySql();
           pstm = mysql.conectar().prepareStatement(consultaCliente);
           pstm.setString(1, nome);
           pstm.setString(2, nome);
           
           rs = pstm.executeQuery();
           ClientesBean cli;
           while (rs.next()){
               cli = new ClientesBean();
               cli.setCodCliente(rs.getInt("codcliente"));
               cli.setNome(rs.getString("nome"));
               clientes.add(cli);       
           }
           mysql.desconectar();
        }catch (Exception e){
            e.printStackTrace();
        }
        return clientes;        
    }
    
    
    
     public List<ClientesBean> listarClientes(String nome){
        List<ClientesBean> clientes = new ArrayList();
        try{
            AcessoMySql mysql = new AcessoMySql();
           pstm = mysql.conectar().prepareStatement(consultaCliente);
           pstm.setString(1, nome);
           pstm.setString(2, nome);
           pstm.setString(3, nome);
          
           rs = pstm.executeQuery();
           ClientesBean cli;
           while (rs.next()){
               cli = new ClientesBean();
               cli.setCodCliente(rs.getInt("codcliente"));
               cli.setNome(rs.getString("nome"));
               cli.setCpf(rs.getString("cpf"));
               cli.setRg(rs.getString("rg"));
               cli.setEndereco(rs.getString("endereco"));
               cli.setBairro(rs.getString("bairro"));
               cli.setCidade(rs.getString("cidade"));
               cli.setEstado(rs.getString("estado"));
               cli.setTelefone(rs.getString("telefone"));
               cli.setCelular(rs.getString("celular"));
               cli.setOperadora(rs.getString("operadora"));
               cli.setEmail(rs.getString("email"));
               clientes.add(cli);              
           }
           mysql.desconectar();
        }catch (Exception e){
            e.printStackTrace();
        }
        return clientes;        
    }
    
     public void excluirCliente(int codigoCliente){
        try{
            AcessoMySql mysql = new AcessoMySql();
            pstm = mysql.conectar().prepareStatement(excluiCliente);
            pstm.setInt(1, codigoCliente);
            pstm.executeUpdate();
            mysql.desconectar();
        }catch(Exception ex){
            
            ex.getMessage();
            
        }
       
    }
    public void alterarCliente(ClientesBean cliente){
        try{
            AcessoMySql mysql = new AcessoMySql();
           pstm = mysql.conectar().prepareStatement(alteraCliente);           
          pstm.setString(1,cliente.getNome());
           pstm.setString(2,cliente.getCpf());
           pstm.setString(3,cliente.getRg());
           pstm.setString(4,cliente.getEndereco());
           pstm.setString(5,cliente.getBairro());
           pstm.setString(6,cliente.getCidade());
           pstm.setString(7,cliente.getEstado());
           pstm.setString(8,cliente.getTelefone());
           pstm.setString(9,cliente.getCelular());
           pstm.setString(10,cliente.getOperadora());
           pstm.setString(11, cliente.getEmail());
           pstm.setInt(12,cliente.getCodCliente());
           pstm.executeUpdate();
           mysql.desconectar();           
        }catch (Exception e){
            e.getMessage();
            
    }
    }
    
    
    
     public int buscarCodigoUltimoCliente(){
        try{
            AcessoMySql mysql = new AcessoMySql();
            pstm = mysql.conectar().prepareStatement(buscaUltimoCodigo);
            rs = pstm.executeQuery();
            if (rs.last()){
                return rs.getInt("codcliente");                
            }
            mysql.desconectar();
        }catch (SQLException ex){
            ex.printStackTrace();
        }
        return 0;
    }
    
}
